#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
#include <time.h>

int main(){

    mpf_set_default_prec(34000000);
    mpf_t x, y, pi , m;
    mpf_init(x);
    mpf_init(y);
    mpf_init(m);
    mpf_init(pi);
    int  n = 10000;
    int i;

        gmp_randstate_t std;

        gmp_randinit_default(std);


    for(i = 0; i < n; i++){

        mpf_urandomb(x ,std , 10000);
        mpf_urandomb(y, std , 10000);

        mpf_mul(x,x,x);
        mpf_mul(y,y,y);

        mpf_add(x,x,y);


        if(mpf_cmp_ui(x,1) <= 0) {
            mpf_add_ui(m, m, 1);
        }
    }
    mpf_init(pi);

    mpf_div_ui(pi, m , n);
    mpf_mul_ui(pi,pi, 4);

    gmp_printf("Iteracoes: %d  %.10000000Ff\n\n", i, pi);

    return 0;
}
